package com.yupi.yupicturebackend.model.dto.blockchain;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * NFT铸造结果
 *
 * @author yupi
 */
@Data
public class NFTMintResult implements Serializable {

    /**
     * 是否成功
     */
    private Boolean success;

    /**
     * 代币ID
     */
    private String tokenId;

    /**
     * 合约地址
     */
    private String contractAddress;

    /**
     * 交易哈希
     */
    private String transactionHash;

    /**
     * 图片IPFS哈希
     */
    private String imageHash;

    /**
     * 元数据IPFS哈希
     */
    private String metadataHash;

    /**
     * NFT元数据
     */
    private NFTMetadata metadata;

    /**
     * 铸造时间
     */
    private LocalDateTime mintTime;

    /**
     * 区块链网络
     */
    private String network;

    /**
     * 铸造成本
     */
    private BigDecimal mintCost;

    /**
     * Gas费用
     */
    private BigDecimal gasFee;

    /**
     * 区块确认数
     */
    private Integer confirmations;

    /**
     * NFT市场链接
     */
    private String marketplaceUrl;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 铸造状态 (pending, confirmed, failed)
     */
    private String status = "pending";

    private static final long serialVersionUID = 1L;
}
